package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;
import com.rockcent.mall.lib.domain.MerchantCoupon;
import com.rockcent.mall.lib.domain.MerchantGiftPacketProduct;
import com.rockcent.mall.lib.domain.Product;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by DK on 16/10/9.
 * 礼包管理DTO
 */
public class GiftPacketDto extends DtoEntity {

    /** 分销礼包唯一的识别码 */
    private String marketPacketId;

    /** 礼包标题 */
    private String name;

    /** 广告封面 */
    private String coverUrl;

    /** 出售开始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dateEnabled;

    /** 出售结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dateDisabled;

    /** 礼包介绍 */
    private String intro;

    /** 分享返利 */
    private Double shareFee;

    /** 总价 */
    private Double basePrice;

    /** 礼包价 */
    private Double sellPrice;
    /**
     * 朋友价
     */
    private Double friendPrice;

    private String status;

    /** 售出数 */
    private Long saleCount;

    /** 核销数 */
    private Long verifiedCount;

    /** 是否共享营销 */
    private Boolean isRecommend;

    /** 礼包名称/编号 */
    private String keyword;

    /** 访客数 */
    private Long viewCount;

    /** 主产品 */
    private MerchantGiftPacketProductDto masterPacketProduct;

    /** 搭配产品集合 */
    private List<MerchantGiftPacketProductDto> collocationPacketProductList;

    /** 搭配产品ids */
    private List<Long> collocationProductIds;

    /** 主产品id */
    private Long masterProductId;

    /** 卡卷集合 */
    private List<MerchantGiftPacketCouponDto> merchantPacketCouponList;

    /** 礼包商家ID */
    private Long relateMerchantId;

    /**
     * 按字段排序(date_created:发布时间 resell_fee:佣金 sell_price:售价 quantity:数量)
     */
    private String sortByName;

    /**
     * 降升序(DESC:降序 ASC:升序)
     */
    private String sort;

    /**
     * 是否展示已分销礼包 (YES:显示 NO:不显示)
     */
    private String showSaleGiftPacket;

    /**
     * 商家名称
     */
    private String merchantName;

    /**
     * 产品礼包推广二维码图片路径
     */
    private String promoteUrl;

    /**
     * 平台ID
     */
    private Long mallId;

    /**
     * 商家ID
     */
    private Long merchantId;

    /**
     * 进入礼包详情链接入口字段
     */
    private String giftPacketInfoLink;

    /**
     * 礼包ids
     */
    private List<Long> packetIds;

    /**
     * 是否销售过该礼包
     */
    private Long isSale;

    /**
     * 佣金
     */
    private Double resellFee;

    /**
     * C端访问URL
     */
    private String cAccessUrl;

    public String getMarketPacketId() {
        return marketPacketId;
    }

    public void setMarketPacketId(String marketPacketId) {
        this.marketPacketId = marketPacketId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCoverUrl() {
        return coverUrl;
    }

    public void setCoverUrl(String coverUrl) {
        this.coverUrl = coverUrl;
    }

    public Date getDateEnabled() {
        return dateEnabled;
    }

    public void setDateEnabled(Date dateEnabled) {
        this.dateEnabled = dateEnabled;
    }

    public Date getDateDisabled() {
        return dateDisabled;
    }

    public void setDateDisabled(Date dateDisabled) {
        this.dateDisabled = dateDisabled;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }

    public Double getSellPrice() {
        return sellPrice;
    }

    public void setSellPrice(Double sellPrice) {
        this.sellPrice = sellPrice;
    }

    public Double getBasePrice() {
        return basePrice;
    }

    public void setBasePrice(Double basePrice) {
        this.basePrice = basePrice;
    }

    public Double getShareFee() {
        return shareFee;
    }

    public void setShareFee(Double shareFee) {
        this.shareFee = shareFee;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Boolean getRecommend() {
        return isRecommend;
    }

    public void setRecommend(Boolean recommend) {
        isRecommend = recommend;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public Long getRelateMerchantId() {
        return relateMerchantId;
    }

    public void setRelateMerchantId(Long relateMerchantId) {
        this.relateMerchantId = relateMerchantId;
    }

    public String getSortByName() {
        return sortByName;
    }

    public void setSortByName(String sortByName) {
        this.sortByName = sortByName;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    public String getShowSaleGiftPacket() {
        return showSaleGiftPacket;
    }

    public void setShowSaleGiftPacket(String showSaleGiftPacket) {
        this.showSaleGiftPacket = showSaleGiftPacket;
    }

    public MerchantGiftPacketProductDto getMasterPacketProduct() {
        return masterPacketProduct;
    }

    public void setMasterPacketProduct(MerchantGiftPacketProductDto masterPacketProduct) {
        this.masterPacketProduct = masterPacketProduct;
    }

    public List<MerchantGiftPacketProductDto> getCollocationPacketProductList() {
        return collocationPacketProductList;
    }

    public void setCollocationPacketProductList(List<MerchantGiftPacketProductDto> collocationPacketProductList) {
        this.collocationPacketProductList = collocationPacketProductList;
    }

    public List<MerchantGiftPacketCouponDto> getMerchantPacketCouponList() {
        return merchantPacketCouponList;
    }

    public void setMerchantPacketCouponList(List<MerchantGiftPacketCouponDto> merchantPacketCouponList) {
        this.merchantPacketCouponList = merchantPacketCouponList;
    }

    public List<Long> getCollocationProductIds() {
        return collocationProductIds;
    }

    public void setCollocationProductIds(List<Long> collocationProductIds) {
        this.collocationProductIds = collocationProductIds;
    }

    public Long getMasterProductId() {
        return masterProductId;
    }

    public void setMasterProductId(Long masterProductId) {
        this.masterProductId = masterProductId;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getPromoteUrl() {
        return promoteUrl;
    }

    public void setPromoteUrl(String promoteUrl) {
        this.promoteUrl = promoteUrl;
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public String getGiftPacketInfoLink() {
        return giftPacketInfoLink;
    }

    public void setGiftPacketInfoLink(String giftPacketInfoLink) {
        this.giftPacketInfoLink = giftPacketInfoLink;
    }

    public List<Long> getPacketIds() {
        return packetIds;
    }

    public void setPacketIds(List<Long> packetIds) {
        this.packetIds = packetIds;
    }

    public Long getIsSale() {
        return isSale;
    }

    public void setIsSale(Long isSale) {
        this.isSale = isSale;
    }

    public Double getResellFee() {
        return resellFee;
    }

    public void setResellFee(Double resellFee) {
        this.resellFee = resellFee;
    }

    public Long getSaleCount() {
        return saleCount;
    }

    public void setSaleCount(Long saleCount) {
        this.saleCount = saleCount;
    }

    public Long getVerifiedCount() {
        return verifiedCount;
    }

    public void setVerifiedCount(Long verifiedCount) {
        this.verifiedCount = verifiedCount;
    }

    public Long getViewCount() {
        return viewCount;
    }

    public void setViewCount(Long viewCount) {
        this.viewCount = viewCount;
    }

    public String getcAccessUrl() {
        return cAccessUrl;
    }

    public void setcAccessUrl(String cAccessUrl) {
        this.cAccessUrl = cAccessUrl;
    }

    public Double getFriendPrice() {
        return friendPrice;
    }

    public void setFriendPrice(Double friendPrice) {
        this.friendPrice = friendPrice;
    }

    @Override
    public String toString() {
        return "GiftPacketDto{" +
                "marketPacketId='" + marketPacketId + '\'' +
                ", name='" + name + '\'' +
                ", coverUrl='" + coverUrl + '\'' +
                ", dateEnabled=" + dateEnabled +
                ", dateDisabled=" + dateDisabled +
                ", intro='" + intro + '\'' +
                ", shareFee=" + shareFee +
                ", basePrice=" + basePrice +
                ", sellPrice=" + sellPrice +
                ", friendPrice=" + friendPrice +
                ", status='" + status + '\'' +
                ", saleCount=" + saleCount +
                ", verifiedCount=" + verifiedCount +
                ", isRecommend=" + isRecommend +
                ", keyword='" + keyword + '\'' +
                ", viewCount=" + viewCount +
                ", masterPacketProduct=" + masterPacketProduct +
                ", collocationPacketProductList=" + collocationPacketProductList +
                ", collocationProductIds=" + collocationProductIds +
                ", masterProductId=" + masterProductId +
                ", merchantPacketCouponList=" + merchantPacketCouponList +
                ", relateMerchantId=" + relateMerchantId +
                ", sortByName='" + sortByName + '\'' +
                ", sort='" + sort + '\'' +
                ", showSaleGiftPacket='" + showSaleGiftPacket + '\'' +
                ", merchantName='" + merchantName + '\'' +
                ", promoteUrl='" + promoteUrl + '\'' +
                ", mallId=" + mallId +
                ", merchantId=" + merchantId +
                ", giftPacketInfoLink='" + giftPacketInfoLink + '\'' +
                ", packetIds=" + packetIds +
                ", isSale=" + isSale +
                ", resellFee=" + resellFee +
                ", cAccessUrl='" + cAccessUrl + '\'' +
                '}';
    }
}
